package com.pzsh.service;

import com.pzsh.entity.OrderEntity;
import com.pzsh.entity.TransactionEntity;
import com.pzsh.entity.vo.OrderVo;
import com.pzsh.util.PageResult;

import java.util.List;

/**
 * @Description: 订单相关服务
 * @Param:
 * @return:
 * @Author: gxl
 * @Date: 2019/12/09
 */
public interface IOrderService {

    /**
     * 获取订单列表 ， 依据userid
     * @param account
     * @param status
     * @param pageSize
     * @param rowSize
     * @return
     */
    PageResult<List<OrderVo>> getOrdersByUserId(String account, Integer status, Integer pageSize, Integer rowSize);

    /**
     * 订单详情
     * @param account
     * @param orderId
     * @return
     */
    OrderVo getOrderInfo(String account, Integer orderId);

    /**
     * 确认收货
     * @param account
     * @param orderId
     */
    void confirmReceive(String account, Integer orderId);

    /**
     * 管理台  获取订单列表
     *
     * @param account
     * @param status
     * @param gtype
     * @param pageSize
     * @param rows
     * @return
     */
    PageResult<List<OrderEntity>> selectByRowBounds(String account, Integer status, Integer gtype, Integer pageSize, Integer rows);

    /**
     * 管理台 更新订单物流信息
     * @param orderId
     * @param commp
     * @param commpOrder
     * @return
     */
    void updateOrderLogistics(Integer orderId, String commp, String commpOrder);

    /**
     * 管理台 获取交易记录
     * @param pageSize
     * @param rows
     * @return
     */
    PageResult<List<TransactionEntity>> getTranList(Integer pageSize, Integer rows);

    /**
     * 管理台 获取交易记录
     * @param pageSize
     * @param rows
     * @return
     */
    PageResult<List<TransactionEntity>> getTranListBy(Integer pageSize, Integer rows, String account);
    /**
     * 获取订单总数
     * @return
     */
    int getOrderCount();

    /**
     * 获取交易总数
     * @return
     */
    int getTranCount();
}
